تابع Avg در sql
تابع Avg در اسکیوال میانگین یک ستون عددی را برمیگرداند.
ساختار دستور avg به صورت زیر است :
SELECT AVG(column_name) FROM table_name
تابع Avg در sql
تابع Avg در اسکیوال میانگین یک ستون عددی را برمیگرداند.
ساختار دستور avg به صورت زیر است :
SELECT AVG(column_name) FROM table_name
محدودیت NOT NULL در sql
از محدودیت NOT NULL در دستور create table زمانی استفاده مکنیم که میخواهیم مقدار Allow Null فیلدها را غیر فعال کنیم.
در حقیقت با تعریف این محدودیت اجازه نمیدهیم که فیلد ما مقدار Null بگیرد. پس در هنگام درج یا به روزرسانی، اگر کاربر مقداری را در این فیلدها وارد نکرد، جلوی انجام عملیات گرفته میشود.
برای تعریف محدودیت NOT NULL از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
که در مثال بالا p_Id و LastName اجازه ی null بودن ندارند ولی دیگر فیلدها allow null هستند.
نکته : پیش فرض برای فیلدها در دستور create table ، مقدار دهی آنها allow null است.
محدودیت Unique , SQL UNIQUE Constraint در sql
از محدودیت Unique زمانی استفاده میکنیم که بخواهیم مقادیر بعضی از فیلدها تکراری نباشند.
این فیلدها ممکن است کلید نباشند ، اما بنابر لزوم برنامه بایستی غیر تکراری باشند. به عنوان مثال فیلد آدرس ایمیل، کلید نیست اما باید Unique یا واحد باشد. برای این کار از Unique Index ها استفاده میکنیم.
محدودیت UNIQUE در هنگام ساخت TABLE
برای تعریف محدودیت Unique در دستور create table در sql ، روی یک ستون از کلمه کلیدی UNIQUE بصورت زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
برای تعریف محدودیت Unique روی چند ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
محدودیت UNIQUE پس از ساخت جدول
برای تغییر دادن محدودیت Unique روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD UNIQUE (P_Id)
برای تغییر دادن محدودیت Unique روی چند ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
از بین بردن یک محدودیت UNIQUE
برای از بین بردن محدودیت Unique از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
محدودیت Check , SQL CHECK Constraint یا محدودیت های خاص در sql
از محدودیت Check یا محدودیت خاص در اس کیو ال زمانی استفاده میکنیم که بخواهیم برای یک فیلد، یک سری محدودیت خاص روی فیلد تعریف کنیم.
برای مثال : مقادیر داخل فیلد بایستی حتما بزرگتر از 10 باشد در غیر اینصورت در هنگام ورود اطلاعات، کاربر با خطا مواجه گردد.
نکته : محدودیت Check را میتوان برای ستون و جدول تعریف کرد.
محدودیت CHECK هنگامی که جدول ساخته می شود
برای تعریف یک محدودیت Check در دستور create table ، روی یک ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
برای تعریف یک محدودیت Check روی چند ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)
محدودیت CHECK پس از ساخته شدن جدول
برای تغییر دادن یک محدودیت Check روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD CHECK (P_Id>0)
برای تغییر دادن یک محدودیت Check روی چند ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
از بین بردن محدودیت CHECK
برای از بین بردن محدودیت Check یا محدودیت خاص ، از دستور زیر استفاده می کنیم:
ALTER TABLE Persons
DROP CHECK chk_Person
محدودیت Default , SQL DEFAULT Constraint یا مقدار پیش فرض در sql
از محدودیت Default یا مقدار پیش فرض در اس کیو ال ، میتوانیم زمانی استفاده کنیم که ، در هنگام ساخت جدول و تعیین نوع فیلدها، مقدار Default Value و یا پیش فرض به یک فیلد بدهیم.
در واقع محدودیت در اینجا به این معنی می باشد که اگر کاربر در هنگام درج یا به روزرسانی مقدار آن فیلد را وارد نکرد، مقدار Default Value به جای آن قرار بگیرد.
محدودیت DEFAULT در هنگام ساخت جدول
برای تعریف یک محدودیت Default در دستور create table از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
از محدودیت Default می توان در مواقعی که میخواهیم از function ها در SQL استفاده کنیم،ز دستور SQL به صورت زیر استفاده می کنیم:برای مثال تابع ()GETDATE
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
محدودیت DEFAULT پس از ساخت جدول
برای تغییر دادن محدودیت Default از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
از بین بردن محدودیت DEFAULT
برای از بین بردن محدودیت Default یا مقدار پیش فرض در sql ، از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT
ایجاد محدودیت برای فیلد ها در اسکیوال (Constraints)
Constraint ها در sql یا همان محدودیت ها در اس کیو ال ، برای محدود کردن نوع داده هایی که میتواند در جدول تعریف شود مورد استفاده قرار میگیرد.
این محدودیت ها را زمانی که یک جدول جدید ایجاد میکنیم یا زمانی که نوع داده ای جدول را تغییر میدهیم بایستی در نظر داشته باشیم.
Constraint های sql شامل موارد زیر میشوند :
محدودیت Primary Key , SQL PRIMARY KEY Constraint یا کلید اصلی در اس کیو ال
از محدودیت Primary Key زمانی استفاده میکنیم که میخواهیم فیلد کلید اصلی در sql ، تعریف کنیم.
محدودیت Primary Key یکی از مهمترین محدودیتها میباشد. فیلد کلید، مقدار تکراری قبول نمیکند و بیشتر برای تفکیک و جستجوی رکوردها مورد استفاده قرار میگیرد.
اعمال محدودیت PRIMARY KEY در هنگام ساخت جدول
برای تعریف محدودیت Primary Key در دستور create table از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
برای تعریف محدودیت Primary Key روی چند ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
محدودیت PRIMARY KEY پس از ساخته شدن جدول
برای تغییر دادن محدودیت Primary Key روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
برای تغییر دادن محدودیت Primary Key روی چند ستون از دستور SQL زیر استفاده می کنیم
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
برای از بین بردن یک PRIMARY KEY
برای از بین بردن محدودیت Primary Key یا کلید اصلی ، از دستور SQL زیر پیروی می کنیم:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
از دستور Alter Table برای اضافه کردن يا حذف کامل يک ستون از يک جدول و یا تغییر نوع داده ی فیلد موجود در پايگاه داده sql استفاده می شود.
برای اضافه کردن يک ستون ( فيلد ) جديد به يک جدول موجود در اسکیوال از دستور ALTER TABLE استفاده می شود:
ALTER TABLE table_name
ADD column_name datatype
برای حذف يک ستون از يک جدول موجود به روش زير عمل می شود :
ALTER TABLE table_name
DROP COLUMN column_name
برای تغییر نوع داده ی یک فیلد از جدول در اسکیوال از دستور زیر استفاده میکنیم :
ALTER TABLE table_name
ALTER COLUMN column_name datatype
همانطور که دیدید ، دستور alter table یکی از مهمترین دستورات در sql است که با 3 پارامتر و کلمه ی کلیدی زیر ، تغییرات جدول را با استفاده از کد در sql راحت میکنند :
نکته مهم : برای تغییر نام های فیلدهای جدول در اسکیوال باید از sp های اسکیوال استفاده کرد . در مقاله ی زیر ، تغییر نام فیلدها همراه با مثال توضیح داده شده است :
تغییر نام فیلد در یک جدول با استفاده از دستور sql
تغییر نام فیلد در یک جدول با استفاده از دستور sql
برای تغییر نام فیلد در جدول از تغییر کد باید به روش زیر و با کمک stored procedure های خود اسکیوال ، عمل کرد :
sp_RENAME 'table_name.old_name' , 'new_name', 'COLUMN'
مثال از تغییر نام ستون و فیلد TerritoryID به TerrID از جدول Sales از پایگاه داده ی Db_name :
USE Db_name; GO EXEC sp_rename 'Sales.TerritoryID', 'TerrID', 'COLUMN'; GO
برای ايجاد يک جدول جديد در پايگاه داده sql ، از دستور Create Table استفاده می کنیم . برای ایجاد جدول در اسکیوال بایستی نکات زیر را در نظر گرفت :
ساختار دستور create table در sql در ساده ترین حالت ، به صورت زیر است :
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)
.
برای مثال برای ایجاد جدول Persons با فیلدهای زیر به صورت زیر عمل میکنیم :
CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
دستور Drop در اسکیوال
تمامی جدول ها ، اندیس ها ، و حتی دیتابیس ها میتوانند با دستور Drop در sql حذف شوند. شیوه های استفاده از دستور drop در sql به شرح زیر است :
دستور Drop Index
از دستور DROP INDEX برای حذف يک انديس موجود در يک فيلد جدول استفاده می شود.
DROP INDEX table_name.index_name
دستور Drop Table
از دستور DROP TABLE برای حذف يک جدول در پايگاه داده استفاده می شود.
DROP TABLE table_name
دستور Drop Database
از دستور DROP DATABASE برای حذف يک پايگاه داده به صورت کامل استفاده می شود
DROP DATABASE database_name
دستور TRUNCATE
برای حذف کليه اطلاعات موجود در يک جدول بدون حذف ستون های آن از دستور TRUNCATE استفاده می کنیم :
TRUNCATE TABLE table_name
اين دستور باعث خالی شدن جدول از اطلاعات می شود ، بدون اينکه خود آن و ساختارش تغييری کند .
مثال :
Truncate Table Mydb;
دستور Create Index در sql
از دستور Create Index در اسکیوال برای ايجاد انديس در ستون های جدول استفاده می شود .
در
يک جدول می توان برای يک يا چند ستون جدول انديس ايجاد کرد ، که اين انديس
ها باعث بالا رفتن سرعت جستجو در رکوردهای جدول مي شود .
انديس يک
شماره است که به هر سطر جدول اختصاص داده می شود و معمولا از صفر شروع می
شود . انديس ها از ديد کاربر مخفی هستند و هر انديس يک نام منحصر به فرد
دارد .
برای ایجاد یک اندیس با داده های تکراری به صورت زیر عمل میکنیم :
CREATE INDEX index_name
ON table_name (column_name)
مثال :
CREATE INDEX PIndex
ON Persons (LastName)
برای ایجاد یک اندیس یا index ، با داده های منحصر به فرد (unique) به صورت زیر عمل میکنیم :
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
برای ايجاد يک انديس ( index ) برای بيش از يک فيلد ، بايد نام فيلد های مورد نظر را به ترتيب در پرانتز بعد از نام جدول وارد کرد .
CREATE INDEX PIndex
ON Persons (LastName, FirstName)
دستور ISNULL در sql
از دستور ISNULL در اسکیوال زمانی استفاده میشود که شما میخواهید تمام فیلدهای null را در خروجی داشته باشید.
مقدار null در اس کیو ال با space ' ' تفاوت دارد.
ساختار دستور is null به همراه مثال آن به صورت زیر است که در این مثال تمام رکوردهایی که حاوی فیلد آدرس null هستند انتخاب می شوند.
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL
بر عکس دستور is null در sql ، دستور is not Null هست که مقادیری را برمیگرداند که Null نباشد که بیشتر از این شکل از این دستور استفاده مشود.
مثال : در مثال زیر رکوردهایی که آدرس آنها تهی ( null ) نیستند ، انتخاب و در خروجی این دستور در اسکیوال می روند.
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL
دستور CREATE DATABASE در sql
برای ايجاد يک پايگاه داده جديد از دستور CREATE DATABASE استفاده می شود.
ساختار دستور create database در اسکیوال به صورت زیر است:
CREATE DATABASE database_name
برای ایجاد یک دیتابیس با نام mySite_db به صورت زیر عمل میکنیم :
CREATE DATABASE mySite_db
در حالت کلی مقادیر ستون ها میتوانند مقدار null داشته باشند. زمانی که یک ستون اختیاری باشد ، شما میتوانید مقدار Null در آن ذخیره کنید. اختیاری به این معنی که میتوانید خالی رهایش کنید.
مقدار پیش فرض در صورت مقدار ندادن به فیلدی در یک رکورد , مقدار Null است.
با استفاده از دستور is null در sql میتوانیم فیلدهایی که مقادیر تهی دارند را با در دستور Select انتخاب کنیم.
مقدار null از جمله مقادیری است که زیاد باهاش در آموزش sql سر و کار خواهیم داشت.
نکته ی بسیاری مهم در مورد null یا تهی اینست که این مقدار با مقدار رشته ای space یا ' ' تفاوت کامل دارد. همچنین null را نباید با مقدار رشته ای آن یعنی 'null' اشتباه بگیریم.
به طور خلاصه دستور full join ( دستور full outer join ) بصورت or کار میکند و دستور inner join بصورت and .
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
مثال : در مثال زیر ما میخواهیم با استفاده از دستور full join در اسکیوال ، همه ی افراد با سفارش هایشان و همه ی سفارشات با افراد مربوط به آنها را در خروجی نمایش دهیم.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
از دستور Union برای ترکيب و ادغام دو يا چند ستون مختلف از 2 يا چند جدول و نشان دادن آنها در يک ستون مشترک استفاده می شود .
در دستور union ، نوع داده ای ستون های انتخاب شده برای ترکيب بايد يکسان باشند .
دستور Union در هنگام ترکيب فيلد ها ، در صورت برخورد با مقادير تکراری آنها را حذف کرده و از هر مقدار يک نمونه را نمايش می دهد . ساختار دستور union به صورت زیر است:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
مثال :
SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA
برای مشاهده تمام مقادير ، حتی مقادير تکراری بايد از دستور Union ALL استفاده کرد
ساختار این دستور به صورت زیر است :
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
مثال :
SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA
Result
در آموزش sql ، دستور union و دستور union all کاربرد های ویژه و خاصی دارند.
دستور LEFT JOIN در sql
خروجی دستور LEFT JOIN در اسکیوال از از جدول سمت چپ انتخاب میشود، حتی اگر هیچ رابطه ای با جدول سمت راست نداشته باشد.
شکل کلی دستور left join در sql بصورت زیر است :
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
نکته : در بعضی دیتابیس ها دستور LEFT JOIN با نام دستور LEFT OUTER JOIN استفاده میشود که تفاوتی در این زمینه وجود ندارد.
مثال : در این مثال جدول اصلی ، جدول Persons میباشد که در سمت چپ JOIN قرار دارد و خروجی ها بر اساس این جدول تنظیم میشوند.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
در صورت نداشتن رابطه ی بعضی ای رکورد ها با جدول سمت راست ، فیلد های آن null انتخاب میشوند که با ترکیب آن با دستور isNull در اسکیول میتوانید خروجی های دلخواه خود را با استفاده از دستور left join بدست آورید.
دستور RIGHT JOIN در sql
خروجی دستور RIGHT JOIN در اسکیوال از از جدول سمت راست انتخاب میشود، حتی اگر هیچ رابطه ای با جدول چپ نداشته باشد. ساختار دستور right join به صورت زیر است :
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
نکته : در بعضی دیتابیس ها دستور RIGHT JOIN با نام دستور RIGHT OUTER JOIN استفاده میشود.
مثال : در این مثال جدول اصلی ، جدول Orders میباشد که در سمت راست JOIN قرار دارد و خروجی ها بر اساس این جدول تنظیم میشود.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
در صورت نداشته رابطه ی بعضی ای رکورد ها با جدول سمت چپ ، فیلد های آن null انتخاب میشوند که با ترکیب آن با دستور isNull در اسکیول میتوانید خروجی های دلخواه خود را با استفاده از دستور right join بدست آورید.
از مجموعه دستورات Join در اسکیوال ، برای پيوند جدول ها در پايگاه داده ها استفاده می شود. از دستور های Join ، برای ارتباط بین چندین جدول که با یکدیگر ارتباط دارند ، درواقع کلید خارجی برای آنها تعریف شده است، میتوان استفاده کرد.
تفاوتهای بین دستورات پیوند ( JOIN ) در SQL
دستور INNER JOIN : خروجی دستور JOIN یا دستور INNER JOIN از بین سطرهایی انتخاب میشود که حداقل یک رابطه در هر دو جدول وجود داشته باشد.
دستور LEFT JOIN : خروجی دستور LEFT JOIN از از جدول سمت چپ انتخاب میشود، حتی اگر هیچ رابطه ای با جدول سمت راست نداشته باشد.
دستور RIGHT JOIN : خروجی دستور RIGHT JOIN از از جدول سمت راست انتخاب میشود، حتی اگر هیچ رابطه ای با جدول چپ نداشته باشد.
دستور FULL JOIN : خروجی دستور FULL JOIN از بین سطرهایی انتخاب میشود که یک رابطه در یکی از جداول بایستی وجود داشته باشد.
تفاوت Join و InnerJoin
تفاوت Join و InnerJoin در performance آنها می باشد. نتیجه ی اجرای هر دوی آنها یکسان است اما دستور InnerJoin دارای Prformance بالاتری می باشد و به همین دلیل توصیه می شود که از دستور InnerJoin استفاده شود.
در مقالات زیر یک به یک این پیوند ها در اسکیوال با مثال توضیح داده شده اند :
خروجی دستور INNER JOIN در اس کیو ال از بین سطرهایی انتخاب میشود که حداقل یک رابطه در هر دو جدول وجود داشته باشد.
تفاوت دستور Join و دستور InnerJoin در performance آنها می باشد. نتیجه ی اجرای هر دوی آنها یکسان است اما دستور InnerJoin دارای Prformance و کارایی بالاتری می باشد و به همین دلیل توصیه می شود که از دستور InnerJoin استفاده شود.
شکل کلی این دستور به صورت زیر است که در آن کلمه ی کلیدی ON فیلد رابطه رو در دو جدول مشخص میکند :
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
در دستور INNER JOIN در اسکیوال بایستی حداقل یک رابطه در هر دو جدول وجود داشته باشد که بعد از کلمه کلیدی On می آید.
نکته مهم : مهمترین دستور ها در آموزش sql ، دستور inner join می باشد که یادگیری کامل دستور join میتواند تفاوت اصلی آموزش حرفه ای اسکیوال باشد.
مثال : اگر رکوردی (خروجی) که در جدول "Persons" وجود دارد هیچ تطابقی با خروجی های جدول "Orders" نداشته باشد ، این رکوردها در خروجی این دستور sql نمایش داده نمیشوند.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
عملگر BETWEEN در اسکیوال
عملگر BETWEEN در sql برای انتخاب اطلاعات در يک محدوده خاص ، در بين دو مقدار تعيين شده استفاده می شود . اين مقادير می تواند از نوع عددی ، متن يا تاريخ باشد .
نکته مهم در مورد دستور Between در sql اینست که بايد نوع مدنظر با نوع داده ای فيلد های استفاده شده در دستور يکسان باشد .
نکته ی دیگر در مورد Between در مورد داده های متنی ، ترتيب قرار گيری حروف الفبا مد نظر برنامه است .
ساختار این دستور به صورت زیر است :
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
مثال : برای نمايش اطلاعات درون محدوده تعيين شده به صورت زیر عمل میکنیم :
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'
مثال : برای نمايش اطلاعات خارج از محدوده تعيين شده از يک عملگر NOT قبل از دستور Between ... And استفاده می شود .
SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'
زمانی که با دستور select در sql یک کوئری اجرا کرده ایم نام يا عنواني که در بالای هر ستون در خروجی نمايش داده می شود ، همان نام فيلد مربوط به داده در جدول اصلی پايگاه داده است .
گاهی اوقات میخواهیم نام ستون ما در خروجی برابر با نام دلخواه ما باشد يا در مواردی که در بخش توابع SQL خواهيم ديد ، يک ستون جديد ايجاد می کنيم که بايد نامی برای آن تعيين شود در این موارد از ويژگی Alias استفاده میکنیم.
از ويژگی Alias برای در نظر گرفتن يک نام مستعار و مجازی برای قرار گرفتن در بخش عنوان هر ستون در خروجی دستور Select در اسکیوال استفاده می شود .
تعریف Alias برای جداول sql : کلمه کلیدی as در اسکیوال این کار را انجام می دهد.
SELECT column_name(s)
FROM table_name
AS alias_name
تعریف Alias برای ستونها در sql :
SELECT column_name AS alias_name
FROM table_name
مثال:
Select Name As نام , Family As خانوادگی From Persons
Where id >15
Order By Family ;
می توان بر روی مقادير ستون هايی که داده عددی دارند ، عمليات رياضی ( مثل ضرب ، تقسيم و ... ) انجام داده و سپس نتايج محاسبات را در يک ستون جديد با عنوان دلخواه تعيين شده توسط ويژگی Alias در خروجی دستور Select نمايش داد .در اين حالت ستون يا ستون های به جدول خروجی اضافه می شود .
مثال : مثال زیر کاربردی از این مورد را در دستور select نشان میدهد :
Select Name+Family As "نام و نام خانوادگی" From Persons
Where id >15
Order By Family ;
در دستور like ، دو کاراکتر % و _ به ترتيب به معنی چند کاراکتر و يک کاراکتر را برای تطابق می توان بکار برد.
در آموزش sql این علامت ها کاربرد بسیاری دارند.
مثال : اسامی کليه مشتريانی که آدرس آنها شامل کلمه Main است بطوریکه قبل Main هر چند کاراکتری که خواست بیاید ولی بعد از Main فقط یک کاراکتر بیاید را پيدا کن :
SELECT customer_name
FROM customer
WHERE customer_street LIKE '%Main_';
عملگر In در اسکیوال برای مشاهده اطلاعات رکوردهايی از جدول به کار می رود که شما مقدار دقيق حداقل يکی از فيلدهای آنرا می دانيد . دستور in در اسکیول برای کوئری های پیچیده در اس کیو ال بسیار کاربردی است.
ساختار این دستور به صورت زیر است :
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
مثال : از جدول Persons مشخصات افرادی را بدهيد که نام خانوادگی آنها رجبی يا یوسفی است :
Select * From Persons
Where Family IN ( "رجبی" , "یوسفی" );
عملگر Like در شرطهای sql ، برای الگوی خاص جستجو مورد استفاده قرار میگیرد. ساختار دستور like در اسکیوال به صورت زیر است:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
مثال : دستور زیر افرادی که شهر آنها با حرف s شروع میشوند را انتخاب مبکند.
SELECT * FROM Persons
WHERE City LIKE 's%'
مثال : دستور زیر افرادی که شهر آنها به حرف s ختم میشوند را انتخاب مبکند.
SELECT * FROM Persons
WHERE City LIKE '%s'
مثال : دستور زیر افرادی که شهر آنهاشامل حرف st میباشد را انتخاب مبکند.
SELECT * FROM Persons
WHERE City LIKE '%st%'
مثال : دستور زیر افرادی که شهر آنهاشامل حرف st نمیباشد را انتخاب مبکند.
SELECT * FROM Persons
WHERE City NOT LIKE '%st%'
نکته : در مقاله ی بعدی علامت های شرطی در Like را توضیح خواهیم داد.
دستور TOP در دستور select اسکیوال ، تعداد رکورهای خروجی را مشخص میکند.
دستور top در sql برای جداولی که بالای هزاران رکورد دارند بسیار مفید میباشد. خروجی با تعداد رکوردهای بالا بر روی کارایی برنامه ی مرتبط با sql ممکن است تاثیر بگذارد.
مثال : با مثال زیر ما 2 رکورد از جدول را انتخاب می کنیم :
SELECT TOP 2 * FROM Persons
مثال : با مثال زیر ما میتوانیم 50 درصد از رکوردها در جدول بالا را انتخاب کنیم :
SELECT TOP 50 PERCENT * FROM Persons
دستور Insert در اسکیوال
دستور Insert در sql برای وارد کردن و ايجاد يک رکورد جديد در جدول استفاده می شود .
دو روش استفاده از این دستور وجود دارد :
INSERT INTO table_name
VALUES (value1, value2, value3,...)
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
نکته : می توان در دستور Insert در
اسکیوال تعيين کرد که مقادير مورد نظر به ترتيب به کدام ستون های جدول
وارد شوند . برای اين منظور ابتدا نام ستون های مورد نظر را به ترتيب جلوی
نام جدول در يک پرانتز وارد کرده و با کاما از هم جدا می کنيم . سپس مقادير
متناظر را به همان ترتيب پس از واژه Vaues در پرانتز وارد می کنيم .
نکته : چنانچه برای فيلد يا فيلدهايی مقداری در دستور insert
در نظر گرفته نشود ، مقادیر پیش فرض تعیین شده و در صورت تعیین نکردن
مقدار پیش فرض جای آنها در جدول خالی می ماند . فقط بايد به ترتيب نام ستون
ها و مقادير دقت کرد .
Insert into Student ( Name , Family ) Values ( "Saeed" , "Rajabi" )
در مثال بالا نام Saeed در فیلد Name و نام Rajabi در فیلد Family میرود. بقیه ی فیلد ها در صورت تعیین کردن مقدار پیش فرض آن مقدار را میگیرند و در صورت تعیین نکردن آن ، مقدار خالی یا Null میگیرند.
دستور Update در sql
دستور Update در اسکیوال برای تغيير اطلاعات موجود در يک فيلد و جايگزينی آن با يک مقدار جديد به کار می رود . ویرایش اطلاعات در بانک اس کیوال از جمله مهمترین اعمال هست که با استفاده از دستور Update امکان پذیر می باشد.
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
برای ویرایش کردن بیش از یک فیلد به روش زیر عمل میکنیم:
Update Person
Set Name = " bahar" , Family = " shokri" , id-number=" 11 "
Where ID =3222
برای ویرایش یک فیلد دستور زیر را مینویسیم :
Update Person
Set Name =" Ali "
Where Name = " Ahmad "
دستور Delete در اسکیوال
دستور Delete در sql برای حذف اطلاعات يک رکورد در جدول بانک اسکیوال استفاده می شود. از دستور delete باید با دقت استفاده شود زیرا امکان بازگرداندن رکورد های حذف شده به این راحتی ها نیست !
DELETE FROM table_name
WHERE some_column=some_value
برای پاک کردن یک رکورد با شناسه مشخص از دستور زیر استفاده میکنیم.
Delete From Person
Where ID = "16 "
دستور Delete *
اين امکان وجود دارد که با دستور Delete * بدون حذف يک جدول ، کليه رکوردهای درون آن را پاک کرد.
Delete From Person
تعداد صفحات : 7